package org.example.demo.controller;

import jakarta.servlet.http.HttpSession;
import org.example.demo.constant.Constants;
import org.example.demo.model.UserInfo;
import org.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping("/user")
@RestController
public class UserController {
    @Autowired
    private UserService userService;
    @RequestMapping(value = "/login",produces = "application/json")   //登录接口
    public String login(String userName, String password, HttpSession session) {
        //检验参数
        if(!StringUtils.hasLength(userName) || !StringUtils.hasLength(password)) {
            return "用户名或密码为空";
        }

/*        if(!"admin".equals(userName) || !"admin".equals(password)) {
            return "密码错误";
        }*/

        //根据用户名称,去数据库查询信息,如果未查询到,说明用户不存在
        //如果查询到用户信息,比对密码是否正确
        UserInfo userInfo = userService.getUserInfoByName(userName);   //根据名字找到这个用户
        if (userInfo == null){
            return "用户不存在";
        }
        //用户存在,校验密码是否正确
        if(!password.equals(userInfo.getPassword())){
            return "密码错误";
        }

        //是将username保存在session中,session的key值为“username”,value值就是username真实的值
        //session.setAttribute("userName",userName);

        //user_session_key 这个是想要存储的属性的键或名称      userInfo 这个是存储在会话中的对象
        //这意味着只要会话有效，你可以使用键 "user_session_key" 来检索相同的 userInfo 对象
        session.setAttribute(Constants.USER_SESSION_KEY,userInfo);  //这里直接存一个对象进session,信息最多
        return "";
    }
}
